package com.junmo.wechat.service;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmo.wechat.pojo.dto.*;
import com.junmo.wechat.pojo.dto.MemberDTO;
import com.junmo.wechat.pojo.entity.SysMember;
import com.junmo.wechat.pojo.vo.MemberVO;

/**
 * 会员业务接口
 *
 * @author haoxr
 * @date 2022/2/12
 */
public interface IMemberService extends IService<SysMember> {

    IPage<SysMember> list(Page<SysMember> page, String nickname);

    /**
     * 根据 openid 获取会员认证信息
     *
     * @param openid
     * @return
     */
    MemberAuthInfoDTO getByOpenid(String openid);

    /**
     * 根据手机号获取会员认证信息
     *
     * @param mobile
     * @return
     */
    MemberAuthInfoDTO getByMobile(String mobile);

    /**
     * 新增会员
     *
     * @param member
     * @return
     */
    Long addMember(MemberRegisterDTO member);

    /**
     * 重置密码
     *
     * @param userName        用户名
     * @param oldpassword     旧密码
     * @param newpassword     新密码
     * @param confirmpassword 确认密码
     * @return
     */
    public boolean resetPassword(String userName, String oldpassword, String newpassword, String confirmpassword, String captcha);

    /**
     * 获取登录会员信息
     *
     * @return
     */
    MemberVO getCurrentMemberInfo();

    /**
     * 根据手机号获取会员信息
     *
     * @param mobile        手机号码
     * @return
     */
    MemberVO getMemberInfoByMobile(String mobile);

    /**
     * 校验用户是否有效(1：正常、2：冻结)
     *
     * @param memberVO
     * @return
     */
    void checkUserIsEffective(MemberVO memberVO);
}
